//----------------------------这里是公共函数-------------------------

function $(obj,content){
	var firstChar=obj.charAt(0);
	var content=content||document;
	if(firstChar=="#"){
		return content.getElementById(obj.substring(1));
	}else if(firstChar=="."){
		var arr=[];
		var aEls=content.getElementsByTagName("*");
			for(var i=0;i<aEls.length;i++){
					var aClassName=	aEls[i].className.split(" ");
						 for(var j=0;j<aClassName.length;j++){
							if(aClassName[j]==obj.slice(1)){
								arr.push(aEls[i]);
								break;
							}
							
						 }
					}
		return arr;
	}else{
		return content.getElementsByTagName(obj);
	}

}


function addClass(obj,className){
	if(obj.className==""){
		obj.className=className;
	}else{
		var arrClassName=obj.className.split(" ");//class名的字符串转化为数组 方便循环遍历寻找是否有相同的class名
		var _index=arrIndex(arrClassName,className);
		if(_index==-1){
			obj.className +=" "+className;
		}
	}
}
function arrIndex(arr,k){
	for (var i = 0; i <arr.length; i++) {
		if(arr[i]==k){
			return i;//遍历数组中所有的class名，看是否有相同的，有相同的就终止，返回这个class在数组中的下标
		}	
	}
	return -1;
}//给元素添加class名函数

function removeClass(obj,className){
	if(obj.className!==""){
		var arrClassName=obj.className.split("");
		var _index=arrIndex(arrClassName,className);
		if(_index!==-1){
			arrClassName.splice(_index,1);//删除第i项的一个元素，也就是要删除的class名本身
			obj.className=arrClassName.join(" ");//将被截取过的数组再转为字符串，用空格链接
		}
	}
}

function getElementsByclassName(className){
	var arr=[];
	var arr1=document.getElementsByTagName("*");
	for(i=0;i<arr1.length;i++){//遍历所有的标签，找到有class名的标签
		if(arr1[i].className){
			var arr2=arr1[i].className.split(" ")//将所有有class名的标签放入数组arr2中
			for(k=0;k<arr2.length;k++){//遍历筛选arr2，找到arr2中有符合要找的有class名的标签
				if(className==arr2[k]){
					arr.push(arr1[i]);//把每一个包含此class名的标签推到数组arr中去
					break;
				}
			}
		}
	}
	return arr;//此时数组arr中已经存了包含className的标签了,将这个输出出去：就是aBox=document.getElementByarr,得到的aBox是一个数组
}

function getStyle(obj,attr){
	if(obj.currentStyle){
		return obj.currentStyle[attr];
	}else{
		return getComputedStyle(obj)[attr];
	}
}//获取元素属性值的函数

function startMove(k,obj,json,callback){
	clearInterval(obj.timer)//先清一下定时器	
	obj.timer=setInterval(function(){
		var turn=true
		for(var attr in json){
			var iTarget=json[attr]
			if(attr=="opacity"){
				var icur=Math.round(parseFloat(getStyle(obj,attr)*100))
			}else{
				var icur=parseInt(getStyle(obj,attr))	
			}
			var speed=(iTarget-icur)/10;
			speed=speed>0?Math.ceil(speed):Math.floor(speed);//取整，防止除不尽的时候一直除，导致速度一直在0附近徘徊
			if(icur!=iTarget){//判断达到目标值时清除定时器
				turn=false
			}
			if(attr=="opacity"){
				obj.style[attr]=(icur+speed)/100;
				obj.style.filter="alpha(opacity='"+(icur+speed)+"')";
			}else{
				obj.style[attr]=icur+speed+"px";//随时间改变对象的属性，注意属性是直接写在行间了，因此写完之后可以获取到
			}	
		}
		if(turn){
			clearInterval(obj.timer)
			callback&&callback();
		}
	},k)		
}

function sliddown(id,h,callback){//简单的下拉函数
	var oBox=document.getElementById(id);
	var turn=false;
	startMove(10,oBox,{height:h},function(){
		callback&&callback()
	})	
}

//本地cookie存储函数
function setCookie(key,value,time,url){//参数依次名字，内容，保存时间
	var mydate=new Date();//获取系统时间
	mydate.setDate(mydate.getDate()+time);//让时间到现在时间之后的几天
	document.cookie=key+"="+encodeURI(value)+";expires="+mydate.toGMTString()+";path="+url;//encodeURI是将value值转码，以便浏览器认识，之后将时间转为字符串
}


function getCookie(key){//获取某个保存好的cookie值
	var str=document.cookie;
	var arr=str.split("; ");
	for(var i=0;i<arr.length;i++){
		var newarr=arr[i].split("=");
		if(newarr[0]==key){
			return decodeURI(newarr[1]);
		}
	}
}

function removeCookie(key){//移除cookie的函数封装
	setCookie(key,"",-15,"/");
}

